02 Aug 2025
Django community aggregator: Community blog posts
Announcing django-generic-notifications 1.0.0
Back in 2011, I started a small Django package called django-generic-notifications. It was built for a project I was working on at the time, got seven releases over a few months… and then it more or less died. Once I moved on from that original project, there wasn't much reason to keep maintaining the library. It never gained a big user base, no pull requests or issues came in, and eventually I archived the repository.
Fast forward to a few weeks ago, and I found myself needing a good, flexible notification system for a new Django project. I checked out a few third-party options, but none of them quite fit what I had in mind. I wasn't super eager to revive django-generic-notifications - it was very old, still using South for migrations (yes, that old) - but in the end, I decided to bring it back to life. Or rather, to start fresh.
So here it is: version 1.0.0 of django-generic-notifications. A complete rewrite, with the same core architecture but a modern, cleaned-up implementation. It's more flexible, more powerful, and a lot more useful.
What is django-generic-notifications?
At its core, this package helps you send notifications to your users through different channels like email or your website. It's built around the idea of defining notification types in your code, and then letting the library handle how and when to deliver them to your users.
Want to show a bell icon on your website when a user gets a new comment? Easy. Want to send them a weekly email digest with grouped notifications? Also easy. Want to build your own Slack or push notification integration? Go for it.
Highlights
- Channels: The old concept of "backends" is now called "channels", and we ship two out of the box:
website
andemail
. - Website notifications: Finally a built-in way to show notifications on your site. The old version never included this, which in hindsight is kind of wild.
- Email digests: Daily or weekly summaries of all pending notifications, grouped and nicely formatted.
- Notification grouping: Avoid spamming users with multiple similar notifications: group them together automatically.
- Simplified internals: No more built-in queuing system, no assumptions about how your custom channels should process notifications. Just plug in your own logic.
- Customizable: Choose which channels a notification must go through and build your own delivery logic if needed.
- Tested: Yes, we have unit tests now 🎉
- Example project: Included in the repo to help you get started quickly.
Get started
Check out the project on GitHub: github.com/loopwerk/django-generic-notifications.
The README walks you through installation, configuration, and how to define your own notification types. You can be up and running in just a few minutes. Let me know how you like it!
02 Aug 2025 7:09pm GMT
Solving bots registration problem by “reinventing the wheel”
<![CDATA[ Solving bots registration problem by "reinventing the wheel"
Ever since I launched ImpressKit in 2021 I had issues with spammy bot registrations. Usually at least a few times a month these would be like twenty new user accounts that were obviously bots.
I figured that it just a cost of having product with registration but over the years I got more and more annoyed. It messed up my stats dashboard, I was sending emails to weird addresses and I think I even got complaint from someone saying the did not register after receiving a login confirmation email.
Some months ago I finally had enough and decided to try to tackle this. I did not want to use 3rd party captcha because these are annoying and it is another part that I would need to monitor and possibly update…
But what should I use? After some thinking I arrived at solution that seemed both simple and like it could work. I added required "questionnaire" to the register form asking the prospective user what the project is about. I made sure the correct answer wasn't the first radio button.
When incorrect option is selected, then the form just redirects to new page explaining that the answer is incorrect and no user account is created.
The results?
I am happy to report that ever since deploying this I did not spot any suspicious new account registration. Even though the "captcha" is super easy to defeat - I don't think anyone is going to create custom bot behavior for my small project.
]]
02 Aug 2025 2:28pm GMT
01 Aug 2025
Django community aggregator: Community blog posts
Django News - Django and AI - Aug 1st 2025
News
Djangonaut Session 5 - Officer and Organizer Interest
A form to gauge returning officer and session organizer interest for the next session!
PyPI Users Email Phishing Attack - The Python Package Index Blog
Phishing emails exploit PyPI package metadata by directing users to fake login pages that mimic PyPI, prompting developers to verify URLs and update passwords.
Djangonaut Space is looking for contributors to be mentors
Posted by Djangonaut Space session organizers on July 31, 2025
Updates to Django
Today 'Updates to Django' is presented by Pradhvan from the Djangonaut Space! 🚀
Last week we had 16 pull requests merged into Django by 11 different contributors including 3 first-time contributors! Congratulations to Anthony Sottile, Mohamed Amine Mahmoud and Take Weiland for having their first commits merged into Django, welcome on board! 🎉
This week's Django highlights 🌟
Migrated django.core.mail to Python's current email API, replacing legacy email handling with modern implementation.
Added hints support for PostgreSQL contrib operations, enabling database routers to make informed decisions in multi-database migration scenarios.
Introduced accessibility guidelines and established accessibility standards that conform with the Web Content Accessibility Guidelines (WCAG) standards and along with best practices from Authoring Tool Accessibility Guidelines (ATAG).
Improved GEOS error messages and tests, enhancing developer experience with better error messages.
That's all for this week in Django development! 🐍🦄
Django Newsletter
Wagtail CMS
AI in the CMS: steering the ecosystem
Wagtail introduces opt-in, ethical AI enhancements that leverage Django's ecosystem for contextual alt text, content summarization, and improved admin customization.
20,000 Django packages
Detailed PyPI analysis reveals over 23,000 Django packages with active releases, while Wagtail leverages both generic and specialized packages to boost development.
Articles
Is AI Leaving the Python Community Behind?
Even as AI-focused talks dominate Python conferences, there is a corresponding lack of support from AI companies in the Python communities.
Django: split `ModelAdmin.get_queryset()` by view
Customizing get_queryset per Django admin view using resolver_match.func.name enables precise database query optimizations that reduce unnecessary joins and improve performance.
AI and Me: A Developer's Perspective
Reflections on using AI in software development-from autocomplete gripes to Claude Code breakthroughs, and why agents need seniors, not sorcery.
Our tools are still not designed for the AI future
The article explores an AI-first IDE paradigm that prioritizes agent workflows and spec-driven development to transform coding and code review processes.
Why We Need to Stop Fighting About AI Tools and Start Teaching Them
LLM-based coding agents streamline boilerplate production so that Django developers can concentrate on building innovative architecture and solving complex design challenges.
Loopwerk: Why Django's DATETIME_FORMAT ignores you (and how to fix it)
Django admin defaults to 12-hour clocks due to locale precedence, but developers can enforce 24-hour time by configuring FORMAT_MODULE_PATH
and translation overrides.
From Not Knowing Programming Was a Job to GSoC and Contributing to Django Core
Contributed inline template partials to Django core for improved component reuse and rendering via HTMX amid a journey from novice programmer to GSoC participant.
Thoughts on HTML mails
Implement HTML notification emails using Django send_mail to deliver visually appealing, skimmable messages with a clear call-to-action and enhanced accessibility.
I was wrong about robots.txt
A good lesson about unintended consequences that may come out of blocking all UserAgents in your robots.txt file.
Events
The DjangoCon US 2025 schedule has been released!
DjangoCon US 2025 schedule includes diverse Django talks covering AI deployment, project maintainability, high performance techniques, and MongoDB integration among other topics.
Getting to know folks: A pre-conference interview
DjangoCon US 2025 pre-conference interview highlights community diversity, organizer insights, and speaker experiences to foster mentorship and global excitement for Django development.
DjangoCon Videos
One Thousand and One Django Sites with Vince Salvino
Told in the storybook style of "One Thousand and One Nights" (a.k.a. "Arabian Nights") this talk will feature real-world stories about strategies and challenges we have encountered along our journey of hosting over 1,000 Django/Wagtail sites.
Django Admin at Scale: From Milliseconds to Microseconds with Sumit Singh
Is your Django Admin crawling with millions of records? Join me in exploring battle-tested optimization techniques that transform Django Admin from sluggish to lightning-fast. From smart queries to caching strategies, you'll learn practical solutions to scale your admin interface while keeping it user-friendly. Performance isn't just a feature-it's a necessity!
Just-in-Time Development with Django and HTMX: Faster, Leaner, and Smarter with Thomas De Bonnet
Learn how Just-in-Time development with Django & HTMX can make your apps faster and more efficient! Fetch only what users need, when they need it-like loading dropdown data on hover or filling a modal when opened. Boost performance, save resources, and enhance UX!
Sponsored Link 2
AI-Powered Django Development & Consulting
REVSYS specializes in seamlessly integrating powerful AI technologies, including GPT-4, into your existing Django applications. Your Django project deserves modern, intelligent features that enhance user engagement and streamline content workflows.
Podcasts
Abstractions: Semi-Coherent Output
Abstractions discusses evolving AI challenges and layered technologies affecting software development dynamics relevant to modern Django application practices.
Django News Jobs
Senior Backend Engineer at Prowler
Backend Engineer at 7Learnings
Django Newsletter
Projects
simonw/simonwillisonblog
The source code behind Simon Willison's high-traffic personal site.
ephes/django-indieweb
Just some of the indieweb endpoints for Django.
Sponsorship
Lightning-Fast Python: Mastering the uv Package Manager - Livestream on August 7th
Register for an upcoming livestream featuring Michael Kennedy, host of Talk Python to Me and Python Bytes podcasts, on August 7th at 11am Eastern Daylight Time (UTC-4).
This RSS feed is published on https://django-news.com/. You can also subscribe via email.
01 Aug 2025 3:00pm GMT